package tool

import (
	"encoding/json"
	"os"
)

// 定义存储结构
type EncryptedData struct {
	ID     string `json:"id"`
	Cipher string `json:"cipher"`
	Type   string `json:"type"`
	Owner  string `json:"owner"`
}

// 保存数据到本地 JSON 文件
func SaveToJSON(data EncryptedData, filename string) error {
	var existingData []EncryptedData

	// 读取已有数据
	file, err := os.ReadFile(filename)
	if err == nil {
		json.Unmarshal(file, &existingData)
	}

	// 追加新数据
	existingData = append(existingData, data)

	// 写入 JSON 文件
	jsonData, _ := json.MarshalIndent(existingData, "", "  ")
	return os.WriteFile(filename, jsonData, 0644)
}

// 读取 JSON 文件
func LoadFromJSON(filename string) ([]EncryptedData, error) {
	var data []EncryptedData
	file, err := os.ReadFile(filename)
	if err != nil {
		return nil, err
	}
	json.Unmarshal(file, &data)
	return data, nil
}
